1. Field of the Invention
The present invention generally relates to computer systems. More particularly, the present invention relates to accessing objects executing in a platform dependent environment by objects executing in a platform independent environment.
2. Description of the Related Technology
The use of the Internet has become widespread in recent years for such diverse uses as, for example, accessing many types of information and data, conducting electronic commerce transactions, downloading software applications and multimedia files from servers to client computers or between client computers, conducting online auctions, publishing various news and entertainment media, and conducting online gambling, to name just a few. One common way to display website information and data over the Internet is via web browser programs. A web browser is essentially a software application used to locate and display web pages. Typical web browsers can display text, graphical images and multimedia information, such as audio and video data. Microsoft Internet Explorer and Netscape Navigator are several widely used web browsers.
Java refers to a general purpose programming language having a number of features that make it well suited for use in World Wide Web applications. Java is an object oriented programming language similar to the widely used C++ programming language, but Java is simplified to eliminate C++ language features that cause common programming errors. Internet Explorer and Netscape Navigator are several examples of Java-compatible web browsers.
ActiveX refers to a set of technologies developed by Microsoft, and ActiveX controls are a specific way of implementing ActiveX technologies. ActiveX is not a programming language, but can be thought of as a set of rules for how various applications can share data. Programmers can develop ActiveX controls in a variety of programming languages, for example, C, C++, Visual Basic and Java. ActiveX controls are presently limited to running only on Microsoft Windows operating system environments. Additional information on programming ActiveX controls can be found in David Chappell, “Understanding ActiveX and OLE,” 1996, Microsoft Press, ISBN 1-572-31216-5, which is hereby incorporated by reference in its entirety.
ActiveX is based on Microsoft's Component Object Model (COM). COM is a software architecture to build component-based applications. COM objects are discrete components, often referred to as objects, each with a unique identity, which expose interfaces that allow applications and other components to access their features. COM objects are language independent, have built-in interprocess communication capability, and easily fit into an object-oriented program methodology. Additional information on COM can be found in the book titled “Essential COM” by Don Box (Menlo Park, Calif.; Addison-Wesley Publishing Company, 1998, ISBN 0-201-63446-5), which is hereby incorporated by reference in its entirety.
Many web developers have utilized the COM/ActiveX (Microsoft) development model. Unfortunately, this development model has many drawbacks over more modern, robust web programming environments, one example being the Java programming environment. The Microsoft development model is lacking in the security, quality, and stability attributes of high-end deployment methods, for example, Java Network Launcher Protocol (JNLP) and Java Web Start. The JNLP framework of services include a number of desirable features, including, for example, transparent updating and managed versioning of applications, client-side resource caching to minimize client loading for relaunch, handling of the JNLP container entirely in the XML language, flexibility of standardized protocols, and extensibility of the Java platform.
Unfortunately, the Microsoft development model is not compatible with the Java programming environment. In other words, applications developed using the Microsoft development model cannot be readily accessed, modified or deployed using the Java programming environment. Thus, website and web application developers are essentially bound to the Microsoft deployment model.
Therefore, what is needed are systems and methods to develop and deploy existing Microsoft COM/ActiveX applications and Microsoft reliant distributed web applications within the robust, secure and stable Java platform without having to undergo expensive and time consuming rewrites or modifications of the existing applications to make them Java-compatible. The systems and methods should allow for not only existing code to be developed and deployed within the Java environment, but also allow for continued development of applications under the Microsoft environment so that programmers are not required to undergo the cost and frustration of having to learn a new web development and deployment environment.